Soy nuevo en React nativo. En la aplicación se escucha la pronunciación de las palabras con el paquete TTS. Cuando uso este paquete, recibo una advertencia de la siguiente manera. Esta advertencia solo ocurre en Android. No hay problema en iOS. Esta advertencia llega cuando se abre la aplicación. ¿Cómo puedo arreglar esto?
Advertencia:
Configuración del paquete TTS:
import { Platform } from "react-native" import Tts from "react-native-tts" export class VocalizationUtil { constructor() { Tts.setDefaultLanguage("en-IE").catch(error => { }) } iosConfig = { iosVoiceId: "com.apple.ttsbundle.Moira-compact", //which voice to use rate: 0.5, //speech rate } androidConfig = { KEY_PARAM_PAN: 0, KEY_PARAM_VOLUME: 0.5, // 0 means silence KEY_PARAM_STREAM: "STREAM_MUSIC" } // Subscribe to TTS events createListeners() { Tts.addEventListener("tts-start", event => { }) Tts.addEventListener("tts-finish", event => { }) Tts.addEventListener("tts-cancel", event => { }) } async voiceTheText(text) { this.createListeners() Tts.stop() //Stop speaking and flush the TTS queue. // if text-to-speech engine is not installed, request the installation Tts.getInitStatus() .then(() => { Tts.speak(`${text}`, Platform.OS === "android" ? this.androidConfig : this.iosConfig) }) .catch(error => { }) } }En caso de que esté utilizando removeEventListener , quedó en desuso https://reactnative.dev/docs/appstate#removeeventlistener Tiene un fragmento de código en la parte superior de la página sobre cómo usar .remove() en lugar de removeEventLister
En caso de que esté utilizando react-native-reanimated o cajón, parece que el problema proviene de que las bibliotecas no se actualizan. https://github.com/react-navigation/react-navigation/issues/9882
Si desea silenciarlo, se llamó al nuevo NativeEventEmitter()` con un argumento no nulo sin el método `addListener` requerido
Gracias a @Langarus por la respuesta. Agregué la solución corta aquí para aquellos que encuentran este problema.
Para todos los paquetes en los que recibe esta advertencia, agregue el siguiente código al archivo ..Module.java del paquete. Por ejemplo, para el paquete TTS, agregue el siguiente código a node_modules/react-native-tts/android/src/main/java/net/no_mad/tts/TextToSpeechModule.java
@ReactMethod public void addListener(String eventName) { // Keep: Required for RN built in Event Emitter Calls. } @ReactMethod public void removeListeners(Integer count) { // Keep: Required for RN built in Event Emitter Calls. }